package com.kelan.android.app.controller;

import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.kelan.android.app.entity.AjaxResult;
import com.kelan.android.app.entity.CheckTaskEntity;
import com.kelan.android.app.entity.CheckTaskVO;
import com.kelan.android.app.entity.EasyUIDataGridResult;
import com.kelan.android.app.entity.ScztxxEntity;
import com.kelan.android.app.service.CheckService;
import com.kelan.android.app.service.ScztxxService;

import cn.hutool.core.util.IdUtil;

@Controller
public class CheckController {

	@Autowired
	private CheckService checkService;
	
	@Autowired
	private ScztxxService scztxxService;
	/**
	 * @Title: checkhtml
	 * @Description: 检查任务执行
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:06:19
	 * @return
	 */
	@RequestMapping("check")
	public String checkhtml() {
		return "check.html";
	}
	
	/**
	 * @Title: checkhtml
	 * @Description: 检查结果录入
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:06:19
	 * @return
	 */
	@RequestMapping("addcheck")
	public String addcheck() {
		return "addcheck.html";
	}
	
	/**
	 * @Title: getStrList
	 * @Description: 查询监管企业信息 select * from BZ_SCZTXX T where 1=1
	 * @Author 刘仁
	 * @DateTime 2020年2月27日 下午12:40:23
	 * @return
	 */
	@GetMapping("checklist")
	@ResponseBody
	public EasyUIDataGridResult getStrList(@RequestParam(value="page",required = true, defaultValue = "1") Integer pageNum ,
            @RequestParam(value="rows",required = true, defaultValue = "10") Integer rows, CheckTaskEntity checkTaskEntity, HttpServletRequest req){
		HttpSession session = req.getSession();
		Object username = session.getAttribute("username");
		if (username!=null) {
			if (!"hkadmin".equals(username.toString())) {
				checkTaskEntity.setAcceptId(username.toString());
			}
		}
		PageHelper.startPage(pageNum , rows);
		List<CheckTaskEntity> list = checkService.selectCheckTaskList(checkTaskEntity);
		PageInfo<CheckTaskEntity> personPageInfo = new PageInfo<>(list);
		EasyUIDataGridResult dataGridResult = new EasyUIDataGridResult();
		dataGridResult.setTotal(Integer.parseInt(personPageInfo.getTotal()+""));
		dataGridResult.setRows(list);
		return dataGridResult;
	}
	/**
	 * @Title: addScztxx
	 * @Description: 创建检查任务
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:16:31
	 * @param scztxxEntity
	 * @return
	 */
	@ResponseBody
	@PostMapping("addCheck")
	public AjaxResult addCheck(CheckTaskEntity checkTaskEntity) {
		checkTaskEntity.setId(IdUtil.fastSimpleUUID());
		checkTaskEntity.setUpdateTime(new Date());
		checkTaskEntity.setCreateTime(new Date());
		checkTaskEntity.setSignIn("0");
		checkTaskEntity.setStatus("0");
		return AjaxResult.success(checkService.insertCheckTask(checkTaskEntity));
	}
	
	/**
	 * @Title: addScztxx
	 * @Description: 签到
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:16:31
	 * @param scztxxEntity
	 * @return
	 */
	@ResponseBody
	@PostMapping("sign/{id}")
	public AjaxResult sign(@PathVariable String id) {
		CheckTaskEntity checkTaskEntity = new CheckTaskEntity();
		checkTaskEntity.setId(id);
		checkTaskEntity.setUpdateTime(new Date());
		checkTaskEntity.setSignIn("1");
		return AjaxResult.success(checkService.updateCheckTask(checkTaskEntity));
	}
	
	/**
	 * @Title: addScztxx
	 * @Description: 任务签收
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:16:31
	 * @param scztxxEntity
	 * @return
	 */
	@ResponseBody
	@PostMapping("accepttask/{id}")
	public AjaxResult accepttask(@PathVariable String id) {
		CheckTaskEntity checkTaskEntity = new CheckTaskEntity();
		checkTaskEntity.setId(id);
		checkTaskEntity.setUpdateTime(new Date());
		checkTaskEntity.setStatus("1");
		return AjaxResult.success(checkService.updateCheckTask(checkTaskEntity));
	}
	
	/**
	 * @Title: deltask
	 * @Description: 删除任务
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:16:31
	 * @param scztxxEntity
	 * @return
	 */
	@ResponseBody
	@GetMapping("deltask/{id}")
	public AjaxResult deltask(@PathVariable String id) {
		return AjaxResult.success(checkService.deleteCheckTaskById(id));
	}
	
	/**
	 * @Title: updatetask
	 * @Description: 检查结果录入
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:16:31
	 * @param scztxxEntity
	 * @return
	 */
	@ResponseBody
	@PostMapping("updatetask")
	public AjaxResult updatetask(CheckTaskEntity checkTaskEntity) {
		return AjaxResult.success(checkService.updateCheckTask(checkTaskEntity));
	}
	
	/**
	 * @Title: selectCheckTaskById
	 * @Description: 根据任务id获取任务详情，并附带id信息
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:16:31
	 * @param scztxxEntity
	 * @return
	 */
	@ResponseBody
	@GetMapping("selectCheckTaskById/{id}")
	public AjaxResult selectCheckTaskById(@PathVariable String id) {
		return AjaxResult.success(checkService.selectCheckTaskById(id));
	}
	
	/**
	 * @Title: selectCheckTaskById
	 * @Description: 根据任务id获取任务详情
	 * @Author 刘仁
	 * @DateTime 2020年2月28日 下午2:16:31
	 * @param scztxxEntity
	 * @return
	 */
	@ResponseBody
	@GetMapping("getCheckTaskById/{id}")
	public AjaxResult getCheckTaskById(@PathVariable String id) {
		CheckTaskVO vo = new CheckTaskVO();
		CheckTaskEntity  entity = checkService.selectCheckTaskById(id);
		if (entity != null) {
			vo.setCheckTaskEntity(entity);
			//查询企业详细信息
			ScztxxEntity scztxxEntity = scztxxService.selectScztxxById(entity.getEntid());
			vo.setScztxxEntity(scztxxEntity);
		}
		return AjaxResult.success(vo);
	}
}
